const state = {
  // 用户状态
  userInfo: null,
  isLoggedIn: false,
}

const mutations = {
  // 变更用户状态的方法
  SET_USER_INFO(state, userInfo) {
    state.userInfo = userInfo
  },
  LOGIN(state) {
    state.isLoggedIn = true
  },
  LOGOUT(state) {
    state.isLoggedIn = false
    state.userInfo = null
  },
}

const actions = {
  // 执行异步操作或调用变更的方法
  login({ commit }, userInfo) {
    // 执行登录逻辑（可能是API调用）
    // 然后提交变更
    commit('SET_USER_INFO', userInfo)
    commit('LOGIN')
  },
  logout({ commit }) {
    // 执行登出逻辑（可能是清除token）
    // 然后提交变更
    commit('LOGOUT')
  },
}

const getters = {
  // 获取状态的方法
  getUserInfo: (state) => state.userInfo,
  isUserLoggedIn: (state) => state.isLoggedIn,
}

export default {
  namespaced: true, // 启用命名空间，以便在全局命名空间中唯一标识模块
  state,
  mutations,
  actions,
  getters,
}
